package com.wzw.expression.expression.invocation;

import com.wzw.expression.expression.operation.Operation;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.lang.Nullable;

import java.lang.reflect.Method;

/**
 * 元数据供应商
 *
 * @author Wangzhiwen
 */
public interface OperationInvocationMetadataProvider {

    Class<? extends Operation> getType();

    OperationInvocationMetadata get(Operation operation, Method method, Class<?> targetClass, @Nullable BeanFactory beanFactory);

}
